#include <stdio.h>
#include "digital.h"

/*判断是否是数字*/
/*static int isdigit(char ch){
	if(ch >= '0' && ch <= '9')
		return 1;
	else
		return 0;
}*/

/*由字符串返回数字，忽略空格和TAB*/
int digital(char *text, int *n){
	int old = *n;	
	if(*n == 0)
		*n = 0x7fffffff;/*取最大值。因为int是32位的，就用这个方法！不知道有没有其他的方法。*/

	if(text == NULL){
		*n = old;
		return 0;
	}

	int i = 0, ret = 0;
	
	while(text[i] == ' ' || text[i] == '\t')
		i++;

	for(; text[i] != '\0' && i < *n; i++){
		if(text[i] == ' ' || text[i] == '\t'){
			*n = i;
			return ret;
		}
		if(isdigit (text[i])){
			if(i > MAXSIZE){
				*n = old;
				return TOOBIG;}
			ret = ret * 10 + (text[i] - '0');
			continue;
		}
		else{
			*n = old;
			return NOTDIGI;}
	}
	*n = i;
	return ret;
}
